package com.huitong.admin.system.controller;

import com.huitong.admin.system.domain.dto.AdminInfoDTO;
import com.huitong.admin.system.domain.vo.AdminInfoVO;
import com.huitong.admin.system.service.AdminService;
import com.huitong.common.core.annotation.Id;
import com.huitong.common.core.domain.Result;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.IOException;

import static com.huitong.common.core.enums.IdType.USER_ID;

/**
 * 教务信息控制层
 *
 * @author fromdrowning
 * @date 2024/5/18 下午5:13
 */
@RequiredArgsConstructor
@Validated
@RestController
public class AdminController {

    /**
     * 教务信息服务层
     */
    private final AdminService adminService;

    /**
     * 查询教务详细信息
     *
     * @param id 学号
     * @return 教务详细信息
     */
    @GetMapping("/info")
    public Result<AdminInfoVO> selectInfo(@Id(type = USER_ID) Long id) {
        return adminService.selectInfo(id);
    }

    /**
     * 修改教务详细信息
     *
     * @param adminInfoDTO 教务详细信息
     * @return 状态码200 “操作成功”
     * @throws IOException 读取文件失败抛出此异常
     */
    @PutMapping("/update")
    public Result<Void> updateInfo(@Validated AdminInfoDTO adminInfoDTO) throws IOException {
        adminService.updateInfo(adminInfoDTO);
        return Result.success();
    }
}
